﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MMITPinGen.Entities;
using System.Data;
using MMITDomain.Entities;
using MMITPinGen.Entities;
using MMITDomain;
using MMITDomain.Concrete;
//using System.Data.Entity;

namespace MMITPinGen
{
    public class EFPINRepository
    {
        private EFDbContext dbContext = new EFDbContext();
        public IQueryable<PIN> PINs
        {
            get
            {
                return dbContext.PINs;
            }
        }
        public void SavePIN(PIN p)
        {
            if (p.Id == 0)
            {
                dbContext.PINs.Add(p);
            }

            dbContext.SaveChanges();
        }

        public PIN GetPINById(int PINId)
        {
            return dbContext.PINs.Find(PINId);
        }

        public PIN GetSeedPIN()
        {
            return dbContext.PINs.OrderByDescending(p=> p.Id).FirstOrDefault();
        }

    }
    public class EFBatchRepository
    {
        private EFDbContext dbContext = new EFDbContext();
        public IQueryable<Batch> Batches
        {
            get
            {
                return dbContext.Batches;
            }
        }
        public void SaveBatch(Batch b)
        {
            if (b.Id == 0)
            {
                dbContext.Batches.Add(b);
            }

            dbContext.SaveChanges();
        }

        public Batch GetBatchById(int BatchId)
        {
            return dbContext.Batches.Find(BatchId);
        }
    }
    //public class EFPartnerRepository 
    //{
    //    private EFDbContext dbContext = new EFDbContext();
    //    public IQueryable<Partner> Partners
    //    {
    //        get
    //        {
    //            return dbContext.Partners;
    //        }
    //    }
    //    public void SavePartner(Partner p)
    //    {
    //        if (p.Id == 0)
    //        {
    //            //MMITDomain.Entities.Account a = new MMITDomain.Entities.Account();
    //            //a.Name =  p.Name;
    //            //a.AccountTypeId = 5;
    //            //a.Status = 6;
    //            //a.CurrencyId = 1;
    //            dbContext.Partners.Add(p);
    //            EFAccountRepository ef = new EFAccountRepository();
    //            //ef.SaveAccount(a);
                  
            
    //        }
    //        else
    //        {
    //            dbContext.Entry(p).State = EntityState.Modified;
                

               
            
    //        }

    //        dbContext.SaveChanges();
    //    }

    //    public Partner GetPartnerById(int PartnerId)
    //    {
    //        return dbContext.Partners.Find(PartnerId);
    //    }

    //}
    //public class EFAccountRepository
    //{
    //    private EFDbContext dbContext = new EFDbContext();
    //    public IQueryable<MMITDomain.Entities.Account> Accounts
    //    {
    //        get
    //        {
    //            return dbContext.Accounts;
    //        }
    //    }
    //    public void SaveAccount(MMITDomain.Entities.Account a)
    //    {
    //        if (a.Id == 0)
    //        {
    //            dbContext.Accounts.Add(a);
    //        }
    //        else
    //        {
    //            dbContext.Entry(a).State = EntityState.Modified;

    //        }

    //        dbContext.SaveChanges();
    //    }

       

    //}

//public interface IPartnerRepository
//{
//    IQueryable<Partner> Partners
//    {
//        get;
//    }

//    void SavePartner(Partner p);
//    Partner GetPartnerById(int PartnerId);
//}
}